/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package redSocial.sessions;

import java.math.BigDecimal;
import redSocial.entities.Usuario;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author inftel
 */
@Stateless
public class UsuarioFacade extends AbstractFacade<Usuario> implements UsuarioFacadeRemote {
    @PersistenceContext(unitName = "redsocial-inftel-ejbPU")
    private EntityManager em;

    protected EntityManager getEntityManager() {
        return em;
    }

    public UsuarioFacade() {
        super(Usuario.class);
    }

    @Override

    public Usuario findUsuario(String email, String password) {
        return (Usuario) em.createQuery("SELECT u FROM Usuario u WHERE u.email LIKE ?1 AND u.contrasenya LIKE ?2 AND u.estado LIKE 'ACTIVO'" )
                .setParameter(1, email).setParameter(2, password).getSingleResult();

    }

    @Override
    public BigDecimal findPK () {
        return (BigDecimal) em.createQuery("SELECT MAX(u.idUsuario) FROM Usuario u")
                .getSingleResult();
    }

    @Override
    public int setEstado (String codigo){
        return em.createQuery("UPDATE Usuario u SET u.estado=\"activa\" WHERE u.codigoValidacion LIKE ?1 AND u.estado=\'inactiva\'")
                .setParameter(1,codigo)
                .executeUpdate();
    }

}
